# -*- coding: utf-8 -*-
# @Time    : 2021/10/22 9:56
# @Author  : TangDagui
# @Email   : 3297364807@qq.com
# @File    : Test.py
# @Software: PyCharm


import numpy as np
import random
import time


def MC_1():  # 蒙特卡洛求定积分1：投点法
    n = 10 ** 7
    x_min, x_max = 0.0, 2.0
    y_min, y_max = 0.0, 2.0
    count = 0
    for i in range(0, n):
        x = random.uniform(x_min, x_max)
        y = random.uniform(y_min, y_max)
        # x*x > y，表示该点位于曲线的下面。所求的积分值即为曲线下方的面积与正方形面积的比。
        if x * x > y:
            count += 1
    integral_value = count / n
    return integral_value


a1 = MC_1()  # 用蒙特卡洛求积分投点法
print('用蒙特卡洛求积分_投点法：', a1)
